import java.util.Scanner;

public class Test {
    public static int countSegments(String s) {
            s = s.trim();
            if( s == null || s.isEmpty() ){
                return 0;
            }
            String[] str = s.split(" ");
            int count = 0;
            for (int i = 0; i < str.length; i++) {
                //里面是空格的不算，有可能多个空格
                if(str[i].isEmpty()) {
                    continue;
                }
                count ++;
            }
            return count;
        }
//            if (s == null || s.isEmpty()) {
//                return 0;
//            }
//
//            int wordCount = 0;
//            boolean inWord = false; // 标记当前是否在单词中
//
//            for (int i = 0; i < s.length(); i++) {
//                char c = s.charAt(i);
//                if (!Character.isWhitespace(c)) { // 如果当前字符不是空格
//                    if (!inWord) { // 如果之前不在单词中，现在遇到了单词的开始
//                        wordCount++;
//                        inWord = true;
//                    }
//                } else {
//                    inWord = false; // 遇到了空格，不在单词中了
//                }
//            }
//
//            // 注意：如果字符串以非空格结束，最后一个单词的计数已经在循环中被处理
//
//            return wordCount;
//        }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String s = scanner.nextLine();
        System.out.println(countSegments(s));
    }

}

//    public static String toLowerCase(String s) {
//       StringBuilder sb = new StringBuilder();
//        for (int i = 0; i < s.length(); i++) {
//            char ret = s.charAt(i);
//            if (ret >= 'A' && ret <= 'Z') {
//                sb.append((char) (ret + 32));
//            } else {
//                sb.append(ret);
//            }
//        }
//        return sb.toString();
//    }
//    public static void main(String[] args) {
//        Scanner scanner=new Scanner(System.in);
//        String s=scanner.nextLine();
//        System.out.println(toLowerCase(s));
//    }